const EventEmitter = require('events').EventEmitter;
// 创建一个闹钟对象，继承EventEmitter
const alarm = new EventEmitter();
// 监听alarm事件
alarm.on('ring',()=>{
    console.log('时间到了，该起床了！');
});

// 监听贪睡事件
alarm.on('snooze',minites =>{
    // console.log('再睡'+minites+'分钟吧！');
    console.log(`再睡${minites}分钟吧！`);
});

// 触发alarm事件
alarm.emit('ring');
// 触发贪睡事件
alarm.emit('snooze',5);

// 一次性事件
alarm.once('alarm',()=>{
    console.log('只执行一次！');
});

// 触发alarm事件
alarm.emit('alarm');

// 自定义一个“计算器” 事件发射器，监听计算事件，接收两个数字和运算符，触发时计算结果并输出。
const calculator = new EventEmitter();
calculator.on('calculate',(num1,num2,operator)=>{
    let result;
    switch (operator) {
        case '+':
            result = num1 + num2;
            break;
        case '-':
            result = num1 - num2;
            break;
        case '*':
            result = num1 * num2;
            break;
        case '/':
            result = num1 / num2;
            break;
        default:
            console.log('无效的运算符！');
            return;
    }
    console.log(`计算结果：${num1} ${operator} ${num2} = ${result}`);
});

calculator.emit('calculate',10,5,'+');
calculator.emit('calculate',10,5,'-');
calculator.emit('calculate',10,5,'*');